
#ifndef __TTUSB_H_
#define __TTUSB_H_


typedef int (* bulk_in_req_cbk)( void * parg, uint8_t * ptr, int tmax );
typedef int (* bulk_out_proc_cbk)( void * parg, uint8_t * ptr, int tsiz );


/*
实现约束:
(a) 仅仅支持 1 个interface.
(c) 所有的 endp 仅仅支持 bulk 通信协议.
(b) 支持定时协议类型, 通过 winusb 的接口来开发.
*/


/* config: device */
int ttusb_desc_device_vid_pid( uint16_t vid, uint16_t pid );
int ttusb_desc_device_str_manu( char * str );
int ttusb_desc_device_str_prod( char * str );
int ttusb_desc_device_str_seri( char * str );

/**/
int ttusb_desc_config_str( char * str );
int ttusb_desc_config_power( uint8_t pwr );


/* config: interface, endpoint */
int ttusb_desc_interface_str( char * str );
int ttusb_desc_interface_add_inp( uint8_t addr, bulk_in_req_cbk cbkf );
int ttusb_desc_interface_add_outp( uint8_t addr, bulk_out_proc_cbk cbkf );

/**/
int ttusb_desc_init( void );
int ttusb_init( void );

#endif


